Hi Tim as usual a great video! I ran into an issue on the release pipeline after adding the file copy task to the Windows Deployment. The issue was the task was failing due to the file path being empty. I must have missed you setting the Artifact download setting on the run agent. I fixed the issue once I checked the WpfDrop in the list of artifacts. Thanks again for this great content!
Hello. I downloaded the exe file from Azure Blob and when i open it nothing happened, the process was running on task manager. I fixed that problem by removing "-p:PublishTrimmed=true" from pipeline's task. I don't know what cause the problem maybe the fact that the task in pipe line has version 2.* (is it .NET Core version?) and my WPF project is 3.0.
We address the appsettings.json file issue later on. That's the only issue that I know of that needs to be addressed in the compiling of the application.
I had the same issue and this was after I finished the next sessions on the json appsettings file. Worked fine from VS talking to the local and Azure API but not from the downloaded file. However, your suggested fix also worked for me. Thanks!
@@IAmTimCorey I've finished appsettings.json issue, but the program was still not opening. Like Lukasz said, the process running on task manager but no window showing. Now I removed -p:PublishTrimmed from WPF Build, the app got bigger (148MB) but it works now. It probably some issue with App.xaml and the Startup of the project that linked to another file in Obj folder named "App.g.cs" and "App.g.i.cs". Please if you have any information about this let us know.
I was having the same problem as Lukasz. When I ran the exe I would not get a window but I would find it in Task Manager as a Background Process. Removing -p:PublishTrimmed=true from the CI 'Build WPF Project' Arguments also fixed it for me. The file went from 91.5 to 153 Meg. There is something that is needed that the PublishTrimmed is not picking up on.
Hi Tim, even though I have programming experience, I bought your complete C# course for two reasons: 1 - To support you, and 2 - To get up with speed with C# and .Net. So far, I'm loving your C# course! In the future, are you planning on covering microservices with .Net?
@@IAmTimCorey That is awesome! So excited for your future topic/course on microservices. Also, thank you for putting a C# course together. It's top notch.
Without having access to azure is there a skipping point to back to VS and develop app more? Or is the rest of the course dependent on having azure access?
You can ignore the publishing part and keep going. We will continue developing the code in this course, as well as developing the CI/CD process. You can still do the CI part of the process, and just not actually deploy it to Azure. You could even deploy it somewhere else (or locally, if you configure Azure DevOps to have access to your local system).
Hello Tim, would it have been easier to initially use windows going right into Azure rather than using Linux? What is the disadvantage of using windows in Azure with this project?
Windows in Azure is mostly there for legacy use. Web servers running Linux are more efficient and cheaper. Since .NET is cross platform, using Linux isn't an issue. In fact, that is what it is designed to do. Is there a problem or downside you are seeing running on Linux?
@@IAmTimCorey Hi Tim, I was just wondering because I noticed that in the last few lessons, you had to switch from Linux to Windows due error messages so I thought why not make the entire project windows from the start?
If you publish an later version of this same app, people who used this url to download it will be notified that there is a later version ? Kind like clickonce does? If not, how can I do this with azure? Thanks Tim, great content as always!
A local database? You would need to use a database that works that way. SQLite would be a good option. Then, though, you need to figure out how to deploy it a second time. Is it ok to overwrite the database and wipe out the records that were in it or do you need to create an upgrade path for the database. If the second, how does that work for upgrading from different versions? Typically, it is better to have a centralized database and then use local databases only for caching.
One quirk I’ve run across with the single exe thing is that the various pieces are extracted to a directory under temp. Then later Windows cleans up the temp directory and the application no longer runs because it can’t find the missing pieces. The fix is to set an environment variable to tell .Net where to store those pieces, presumably in a directory that Windows does not clean. The environment variable is DOTNET_BUNDLE_EXTRACT_BASE_DIR Edit: also, RBAC = role-based access control
Is there any easy way to implement check for new updates, then update automatically only through a run patch with only the changes with a msi package? Thanks for great course.
HiTim, If you just step in to this tutorial, your pipeline will break on the dotnet publish, cause .NET Core 3.1 is out of live. To fix this, I added a Use .NET Core component and set the version to 3.1.x. This will implement the .NET Core sdk 3.1.x for you. In the Commantline Script, you also have to set the dotnet version like ==> dotnet tool install --global dotnet-ef --version 3.1.x. I hope this will help others?
For those watching and want to implement this on your side for this course. This WPF project uses dotnet 3.0 (I'm using 3.1 in my side) and at this time Azure Pipelines agent(free agent from Microsoft) uses dotnet 5.x to compile our code. And if you setup the CI pipeline same as Tim, your WPF app won't open because of "-p:PublishTrimmed=true". For some reason .Net 5 not happy with this argument. If you know sharing it will be grateful. To fix this, one of ways is to remove "-p:PublishTrimmed=true" argument. Which not trim the output and its size will be larger compare to trimmed output. Another way is adding "Use .NET Core" task before you build WPF project. In "Use .NET Core" task, specify the SDK version which it got to be 3.1.x to match with your 3.1 project (I'm not sure this works for version 3.0 projects which Tim uses).
Awesome, thanks RekarPC98. That (and updating WPF to Cor 3.1) got the build going again. The Command line script then failed. But cloning the use .NET Core script (and changing it to use Core 5) before Command line script fixed it all.
@@robbeck Thanks for your replay. For me using dotnet 3.1.x for building the WPF and even the command line script works just fine. I'm not sure why it failed for you, but despite that, I am glad you got it fixed.
Hi Tim, sorry if this is incorrect or inappropriate but some of your courses are being posted on another channel as one big video some cases the vid is like 24 hours in length
Yes, this application originally was a .NET Framework application throughout. That was intentional so that we could see how to upgrade a "real" application to .NET Core. That is all part of Phase 1 of this course. We are in Phase 2 right now, which is about adding features, moving past the legacy bits, and automating the build and deploy process.
Hi Tim, could you please make a video on "How do I become a software Architect" or what are the prerequisites for it. It would really help me as I want to become one. Thanks
Hi Tim, many thanks for the great tutorials and clear explanations, I am one of the thousands that have been inspired by your videos and I'm always looking forward to the next one! I have one question to you or anyone who could answer. Maybe I missed it somewhere since I haven't migrated to Core yet. The question is, since we have to starting projects (the DesktopUI and the DataManager) it seems that VS can only publish one project (the exe). So, how is it possible to publish a full app that has multiple projects and multiple starts? Any guidance would be welcome!
You don't. Remember that the solution is just a convenience for development. To publish multiple projects, you need to publish each project (each UI project, that is, so the API and WPF projects) separately.
@@IAmTimCorey Many thanks for the prompt answer! I’m working in a full client (local) application, so I guess it might not make sense to have the web Api for security but I should have my own library? In any case, looking forward to your next videos!
Great videos, I am looking for a way to set up this application in a way that the application can be used by multiple clients each client having their own database. Does anyone in here have any idea on how to achieve that?
How about Xamarin? I bet that is in the list already hehe. I have setup a Mac for building ios but it would be nice to see the whole trip from source to devops to app store.
Hi Tim as usual a great video! I ran into an issue on the release pipeline after adding the file copy task to the Windows Deployment. The issue was the task was failing due to the file path being empty. I must have missed you setting the Artifact download setting on the run agent. I fixed the issue once I checked the WpfDrop in the list of artifacts. Thanks again for this great content!
Glad you figured it out.
Hello. I downloaded the exe file from Azure Blob and when i open it nothing happened, the process was running on task manager. I fixed that problem by removing "-p:PublishTrimmed=true" from pipeline's task. I don't know what cause the problem maybe the fact that the task in pipe line has version 2.* (is it .NET Core version?) and my WPF project is 3.0.
We address the appsettings.json file issue later on. That's the only issue that I know of that needs to be addressed in the compiling of the application.
I had the same issue and this was after I finished the next sessions on the json appsettings file. Worked fine from VS talking to the local and Azure API but not from the downloaded file. However, your suggested fix also worked for me. Thanks!
@@IAmTimCorey I've finished appsettings.json issue, but the program was still not opening. Like Lukasz said, the process running on task manager but no window showing. Now I removed -p:PublishTrimmed from WPF Build, the app got bigger (148MB) but it works now. It probably some issue with App.xaml and the Startup of the project that linked to another file in Obj folder named "App.g.cs" and "App.g.i.cs". Please if you have any information about this let us know.
I was having the same problem as Lukasz. When I ran the exe I would not get a window but I would find it in Task Manager as a Background Process. Removing -p:PublishTrimmed=true from the CI 'Build WPF Project' Arguments also fixed it for me. The file went from 91.5 to 153 Meg. There is something that is needed that the PublishTrimmed is not picking up on.
Interesting. Thanks for sharing.
Stunning presentation as usual.
Thanks!
Hi Tim, even though I have programming experience, I bought your complete C# course for two reasons: 1 - To support you, and 2 - To get up with speed with C# and .Net. So far, I'm loving your C# course! In the future, are you planning on covering microservices with .Net?
Awesome, thank you! That's on my list
@@IAmTimCorey That is awesome! So excited for your future topic/course on microservices. Also, thank you for putting a C# course together. It's top notch.
Without having access to azure is there a skipping point to back to VS and develop app more? Or is the rest of the course dependent on having azure access?
You can ignore the publishing part and keep going. We will continue developing the code in this course, as well as developing the CI/CD process. You can still do the CI part of the process, and just not actually deploy it to Azure. You could even deploy it somewhere else (or locally, if you configure Azure DevOps to have access to your local system).
Hello Tim, would it have been easier to initially use windows going right into Azure rather than using Linux? What is the disadvantage of using windows in Azure with this project?
Windows in Azure is mostly there for legacy use. Web servers running Linux are more efficient and cheaper. Since .NET is cross platform, using Linux isn't an issue. In fact, that is what it is designed to do. Is there a problem or downside you are seeing running on Linux?
@@IAmTimCorey Hi Tim, I was just wondering because I noticed that in the last few lessons, you had to switch from Linux to Windows due error messages so I thought why not make the entire project windows from the start?
If you publish an later version of this same app, people who used this url to download it will be notified that there is a later version ? Kind like clickonce does? If not, how can I do this with azure? Thanks Tim, great content as always!
Hi Tim! Great video as aways! I was wondering if there is a way to publish my app with a local database, just like you did with the .NetCore runtime?
A local database? You would need to use a database that works that way. SQLite would be a good option. Then, though, you need to figure out how to deploy it a second time. Is it ok to overwrite the database and wipe out the records that were in it or do you need to create an upgrade path for the database. If the second, how does that work for upgrading from different versions? Typically, it is better to have a centralized database and then use local databases only for caching.
What about auto-updates?
One quirk I’ve run across with the single exe thing is that the various pieces are extracted to a directory under temp. Then later Windows cleans up the temp directory and the application no longer runs because it can’t find the missing pieces. The fix is to set an environment variable to tell .Net where to store those pieces, presumably in a directory that Windows does not clean. The environment variable is DOTNET_BUNDLE_EXTRACT_BASE_DIR
Edit: also, RBAC = role-based access control
Thanks for sharing
Is there any easy way to implement check for new updates, then update automatically only through a run patch with only the changes with a msi package?
Thanks for great course.
Tim already has a video on this. He demonstrated it with nuGet
@@ibrahimhussain3248 I think you are referring to deploying an application with Squirrel, I am asking about an msi package.
@@StudentCompanion How about this?
th-cam.com/video/4t2TI8ImwMY/w-d-xo.html
Excellent video. This course is in Udemy?
No, I do not have courses on Udemy.
HiTim, If you just step in to this tutorial, your pipeline will break on the dotnet publish, cause .NET Core 3.1 is out of live. To fix this, I added a Use .NET Core component and set the version to 3.1.x. This will implement the .NET Core sdk 3.1.x for you. In the Commantline Script, you also have to set the dotnet version like ==> dotnet tool install --global dotnet-ef --version 3.1.x. I hope this will help others?
Thanks for sharing!
For those watching and want to implement this on your side for this course.
This WPF project uses dotnet 3.0 (I'm using 3.1 in my side) and at this time Azure Pipelines agent(free agent from Microsoft) uses dotnet 5.x to compile our code.
And if you setup the CI pipeline same as Tim, your WPF app won't open because of "-p:PublishTrimmed=true". For some reason .Net 5 not happy with this argument. If you know sharing it will be grateful.
To fix this, one of ways is to remove "-p:PublishTrimmed=true" argument. Which not trim the output and its size will be larger compare to trimmed output.
Another way is adding "Use .NET Core" task before you build WPF project.
In "Use .NET Core" task, specify the SDK version which it got to be 3.1.x to match with your 3.1 project (I'm not sure this works for version 3.0 projects which Tim uses).
Awesome, thanks RekarPC98. That (and updating WPF to Cor 3.1) got the build going again. The Command line script then failed. But cloning the use .NET Core script (and changing it to use Core 5) before Command line script fixed it all.
@@robbeck Thanks for your replay. For me using dotnet 3.1.x for building the WPF and even the command line script works just fine. I'm not sure why it failed for you, but despite that, I am glad you got it fixed.
Thanks mate
IAM 제어하는 부분이 많은 도움이 되었습니다. 정말 감사합니다!
We are glad you found it helpful.
Hi Tim, sorry if this is incorrect or inappropriate but some of your courses are being posted on another channel as one big video some cases the vid is like 24 hours in length
If the channel is Free Code Camp then I approved it. Otherwise, please email me the link to the channel (tim@IAmTimCorey.com)
just skipped few times and you mentioned app.config was the base for this project to bring some legacy app based on .netfx ?
Yes, this application originally was a .NET Framework application throughout. That was intentional so that we could see how to upgrade a "real" application to .NET Core. That is all part of Phase 1 of this course. We are in Phase 2 right now, which is about adding features, moving past the legacy bits, and automating the build and deploy process.
Hi Tim, could you please make a video on "How do I become a software Architect" or what are the prerequisites for it. It would really help me as I want to become one. Thanks
Added to the list, thanks!
Hi Tim, many thanks for the great tutorials and clear explanations, I am one of the thousands that have been inspired by your videos and I'm always looking forward to the next one!
I have one question to you or anyone who could answer. Maybe I missed it somewhere since I haven't migrated to Core yet. The question is, since we have to starting projects (the DesktopUI and the DataManager) it seems that VS can only publish one project (the exe). So, how is it possible to publish a full app that has multiple projects and multiple starts? Any guidance would be welcome!
You don't. Remember that the solution is just a convenience for development. To publish multiple projects, you need to publish each project (each UI project, that is, so the API and WPF projects) separately.
@@IAmTimCorey
Many thanks for the prompt answer!
I’m working in a full client (local) application, so I guess it might not make sense to have the web Api for security but I should have my own library?
In any case, looking forward to your next videos!
Would you do similar project like this in the future or this is the only one?
Multiple ideas being considered for the future. A few exciting things in the works already. Hang in there, more to come.
@@IAmTimCorey can't wait :)
Great videos, I am looking for a way to set up this application in a way that the application can be used by multiple clients each client having their own database. Does anyone in here have any idea on how to achieve that?
How about Xamarin? I bet that is in the list already hehe. I have setup a Mac for building ios but it would be nice to see the whole trip from source to devops to app store.
Noted, thanks. I put it on my list.
What is web socket api.
First lol
OK