发布ASP.Net Core 2.1preview2 网站到本地IIS MSB3030 *.PrecompiledViews.dll
Publish ASP.Net Core 2.1preview2 website to local IIS MSB3030 *.PrecompiledViews.dll
更新 1
根据@Priyesh Kumar 的反馈,我从网站根文件夹(带有 *.csproj 的网站)使用了以下命令。这奏效了。然后我将 "win10-x64" 内容文件复制到 c:\www\sigex.com.
dotnet publish -c Release -r win10-x64 --self-contained
我现在 运行 遇到了几个不同的问题,但会解决它们,然后 post 支持解决方案。
原创Post
您好,我正在尝试将我的网站本地发布到 IIS(我在 IIS 管理器中创建的网站)。我在 visual studio.
中使用右键单击发布选项
在 IIS 管理器中,我的设置是;
对于应用程序池,我有以下内容
当我点击"Publish"和select "IIS, FTP, etc"并点击"Publish"。然后我将设置输入为 "Publish method: File System"。我将目标位置设置为 "C:\www\sigex.com"。我在 "c:\windows\system32\drivers\etc\hosts" 文件中使用“127.0.0.1 sigex.com”在本地使用此域(工作正常)。
发布设置如下图;
设置发布配置后,我收到以下警告框;
tmp文件里面有以下内容;
03/06/2018 17:10:54
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass41_0.<PublishAsync>b__2()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__116.MoveNext()
---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.<---
===================
在 "Web Publish Activity" 中,我得到以下信息;
任何人都可以帮助我解决我的问题吗?我在这里找到了这个 post,它说他们遇到了同样的问题。
https://github.com/dotnet/core/issues/1039
然而他们说这只发生在
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
在*.csproj中设置。我的 *.csproj
中没有以上内容
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<UserSecretsId>aspnet-Onion.Website-23EA0CB5-7C55-42E5-80E3-8CD26CCDBA6C</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0-preview1-final" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-preview1-final" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<!-- obsolete references -->
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0-preview1-final" />
<!--<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.0-preview1-final" />-->
<!--<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.2" />-->
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Onion.Repositories\Onion.Repositories.csproj" />
<ProjectReference Include="..\Onion.Services\Onion.Services.csproj" />
</ItemGroup>
</Project>
我尝试 selecting x86 作为 cpu 目标,但这没有任何区别。请帮忙。
尝试使用 dotnet cli 命令发布
dotnet publish -c Release -r win10-x64 --self-contained
-c: Publish configuration, Release|Debug
-r: Targeted runtime environment. Full list here
--self-contained: Downloads and created a self contained package which can be run without dotnet sdk.
- 复制
bin/Release/netcoreapp2.1/win10-x64/publish
中的文件夹,其中 web.config 存在于您的
部署位置。
- 确保为 IIS 安装 Dotnet 核心 hosting bundle。
- 重新启动 IIS
- 使用 .NET CLR 版本创建新池
No Managed Code
- 将 read/write 权限授予
IIS_IUSRS
和 IUSR
。
- 使用上述应用程序池和代码位置创建新网站。
阅读官方docs.
您可能也对 CORS 感兴趣。从 here.
安装 IIS cors
注意:所有版本都特定于 OP 的系统。确保更换版本。
注意:确保您已更新 Visual studio 以支持 dotnet core
更新 1
根据@Priyesh Kumar 的反馈,我从网站根文件夹(带有 *.csproj 的网站)使用了以下命令。这奏效了。然后我将 "win10-x64" 内容文件复制到 c:\www\sigex.com.
dotnet publish -c Release -r win10-x64 --self-contained
我现在 运行 遇到了几个不同的问题,但会解决它们,然后 post 支持解决方案。
原创Post
您好,我正在尝试将我的网站本地发布到 IIS(我在 IIS 管理器中创建的网站)。我在 visual studio.
中使用右键单击发布选项在 IIS 管理器中,我的设置是;
对于应用程序池,我有以下内容
当我点击"Publish"和select "IIS, FTP, etc"并点击"Publish"。然后我将设置输入为 "Publish method: File System"。我将目标位置设置为 "C:\www\sigex.com"。我在 "c:\windows\system32\drivers\etc\hosts" 文件中使用“127.0.0.1 sigex.com”在本地使用此域(工作正常)。
发布设置如下图;
设置发布配置后,我收到以下警告框;
tmp文件里面有以下内容;
03/06/2018 17:10:54
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass41_0.<PublishAsync>b__2()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__116.MoveNext()
---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.<---
===================
在 "Web Publish Activity" 中,我得到以下信息;
任何人都可以帮助我解决我的问题吗?我在这里找到了这个 post,它说他们遇到了同样的问题。
https://github.com/dotnet/core/issues/1039
然而他们说这只发生在
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
在*.csproj中设置。我的 *.csproj
中没有以上内容 <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<UserSecretsId>aspnet-Onion.Website-23EA0CB5-7C55-42E5-80E3-8CD26CCDBA6C</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0-preview1-final" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0-preview1-final" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<!-- obsolete references -->
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0-preview1-final" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0-preview1-final" />
<!--<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.0-preview1-final" />-->
<!--<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.2" />-->
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Onion.Repositories\Onion.Repositories.csproj" />
<ProjectReference Include="..\Onion.Services\Onion.Services.csproj" />
</ItemGroup>
</Project>
我尝试 selecting x86 作为 cpu 目标,但这没有任何区别。请帮忙。
尝试使用 dotnet cli 命令发布
dotnet publish -c Release -r win10-x64 --self-contained
-c: Publish configuration, Release|Debug
-r: Targeted runtime environment. Full list here
--self-contained: Downloads and created a self contained package which can be run without dotnet sdk.
- 复制
bin/Release/netcoreapp2.1/win10-x64/publish
中的文件夹,其中 web.config 存在于您的 部署位置。 - 确保为 IIS 安装 Dotnet 核心 hosting bundle。
- 重新启动 IIS
- 使用 .NET CLR 版本创建新池
No Managed Code
- 将 read/write 权限授予
IIS_IUSRS
和IUSR
。 - 使用上述应用程序池和代码位置创建新网站。
阅读官方docs.
您可能也对 CORS 感兴趣。从 here.
安装 IIS cors注意:所有版本都特定于 OP 的系统。确保更换版本。 注意:确保您已更新 Visual studio 以支持 dotnet core