我可以跑我的Asp.Net 视2应用程序而一个问题上我当地的计算机。只是运行调试。

但如果我已经建造了它,我不能公布它!我需要干净的解决方案,并将其发布一次。我知道这不是系统至关重要的,但是这真的很讨厌。"有一点发布"不是"干净的解决方案和后来有一点发布"

确切的错误,如下:

错误11这是一个错误使用 部分登记为 allowDefinition='MachineToApplication' 超过应用水平。这个错误 可以引起一个虚拟目录 不构成为一个应用程序 在IIS。

我怀疑它的东西来做网络。Config在美景文件夹,但后来为什么只有当我一旦建立之前。只要注意到,该应用程序的工作的现,一旦出版。

有帮助吗?

解决方案

我有同样的问题与我的软应用程序。这是令人沮丧,因为我仍然想要我的意见进行检查,因此我没有要关闭 MvcBuildViews

幸运的是,我碰到一个 这给我答案。保持MvcBuildViews作 真的, 然后你可以添加下面的线下项目中的文件:

<BaseIntermediateOutputPath>[SomeKnownLocationIHaveAccessTo]</BaseIntermediateOutputPath>

和让那个文件夹不在项目的文件夹。对我的作品。这不是一个完美的解决方案,但这是很好的时刻。确保你删除的 文件夹(位于内部的 obj\调试 和/或 obj\释放 文件夹)从项目文件夹,否则,你将继续得到这一错误。

总的来说, MS知道这个错误...

其他提示

我删除了所有的东西我的OBJ / Debug文件夹中,并将其固定的这个错误。这让我在

离开
<MvcBuildViews>true</MvcBuildViews>

在我的项目文件(其中派上用场与T4MVC T4模板)选项。

编辑: 这可以通过简单地使用“构建”更容易实现 - >“重新生成解决方案”菜单(因为什么重建实际上做的是明确的OBJ / Debug文件夹,然后构建解决方案)

我用这个解决办法的 MS连接 页面对这种错误。它清除所有obj和临时文件在您的项目(所有构)在运行之前AspNetCompiler.

修改MvcBuildViews目标 项目文件使它取决于 在目标清理 包装的文件,这些工作室 创建。这些目标都包含在 网络应用程序项目 自动的。

所有包装的文件将被删除 每次MvcBuildViews 目标执行。

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'" DependsOnTargets="CleanWebsitesPackage;CleanWebsitesPackageTempDir;CleanWebsitesTransformParametersFiles;">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(MSBuildProjectDirectory)" />
</Target>

当有web项目输出(模板的web.config或临时发布文件)在文件夹中的obj发生此问题。所使用的编译器ASP.NET是不够聪明忽略东西在OBJ文件夹,因此它引发错误代替。

另一个解决方法是在调用之前核弹发布输出权。打开你的.csproj和改变这样的:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

这样:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <ItemGroup>
    <ExtraWebConfigs Include="$(BaseIntermediateOutputPath)\**\web.config" />
    <ExtraPackageTmp Include="$([System.IO.Directory]::GetDirectories(&quot;$(BaseIntermediateOutputPath)&quot;, &quot;PackageTmp&quot;, System.IO.SearchOption.AllDirectories))" />
  </ItemGroup>
  <Delete Files="@(ExtraWebConfigs)" />
  <RemoveDir Directories="@(ExtraPackageTmp)" />
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

这将删除所有web.configs下\ OBJ,以及下\ OBJ所有PackageTmp文件夹。

如果您正在使用Web发布,您可以设置MvcBuildViews=falsePrecompileBeforePublish=true,其拷贝到临时文件夹后,预编译(即将进行之前发布/包)。

注意:PrecompileBeforePublish仅由 “新” Web发布管道堆(VS2010 SP1 +天青SDK或VS2012 RTM)的支持。如果你正在使用VS2010 RTM,你需要使用的替代方法之一。

关于由jrummell的方案中,设置:

DependsOnTargets="CleanWebsitesPackage;CleanWebsitesPackageTempDir;CleanWebsitesTransformParametersFiles;"

它的工作在2010 VS ,但<强>不VS 2012 即可。 2012年,你必须把:

DependsOnTargets="CleanWebsitesPackage;CleanWebsitesWPPAllFilesInSingleFolder;CleanWebPublishPipelineIntermediateOutput"

来源:

VS 2010: C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ V10.0 \网络\ Microsoft.Web.Publishing.targets

VS 2012: C:\ Program Files文件(x86)的\的MSBuild \微软\ VisualStudio的\ 11.0 \网络\ Microsoft.Web.Publishing.targets

我知道这已经回答了,但我只是想补充一些有趣的事情,我发现。

我已经设置了“MvcBuildViews”假项目,全部删除bin和OBJ文件夹和我仍然得到错误。我发现有一个“.csproj.user”文件,该文件仍然有‘MvcBuildViews’设置为true。

我删除“.csproj.user”文件,然后它的所有工作。

所以一定要确保,如果你改变你的csproj文件,你要么更改或删除“.csproj.user”文件还。

我有这个问题为好,所以我创建的项目性质的预构建事件要清洁输出目录(${projectPath}\bin,${projectPath}\obj\${ConfigurationName})。在另一个项目中,我也收到此错误,即使在地方的清洁活动。在第二个项目我被编译的意见作为项目文件中列出:

<MvcBuildViews>true</MvcBuildViews>

我改变了时真亦假,并使其不再抱怨这个错误,但仍然正确运行。我不会要求我知道究竟是什么造成了第二个错误,但至少它让我前进暂且。

在问题具有与中间文件做的,但有其由在builnding观点之前清理那些中间文件的另一个解决方案。

该解决方案已经被包括在一些版本的VS,但我只能说,我有问题,在VS 2013更新5.(请参阅“小心” 的下面,它可以被固定在这个版本,但不是只在我特别非标准情况下工作)。

我借soltuion从错误:allowDefinition的= 'MachineToApplication' 超出上的Visual Studio Connect应用程序级

该溶液在于包括这些行到Web应用程序的项目(文件.csproj),该处理offedning中间文件的删除:

<!--Deal with http://connect.microsoft.com/VisualStudio/feedback/details/779737/error-allowdefinition-machinetoapplication-beyond-application-level, 
we will need to clean up our temp folder before MVC project starts the pre-compile-->
<PropertyGroup>
    <_EnableCleanOnBuildForMvcViews Condition=" '$(_EnableCleanOnBuildForMvcViews)'=='' ">true</_EnableCleanOnBuildForMvcViews>
</PropertyGroup>
<Target Name="CleanupForBuildMvcViews" Condition=" '$(_EnableCleanOnBuildForMvcViews)'=='true' and '$(MVCBuildViews)'=='true' " BeforeTargets="MvcBuildViews">
    <ItemGroup>
     <_PublishTempFolderNamesToCleanup Include="Database;TransformWebConfig;CSAutoParameterize;InsertAdditionalCS;ProfileTransformWebConfig;Package;AspnetCompileMerge" />
    </ItemGroup>
    <!--Force msbuild to expand all the wildcard characters so to get real file paths-->
    <CreateItem Include="@(_PublishTempFolderNamesToCleanup->'$(BaseIntermediateOutputPath)**\%(identity)\**\*')">
     <Output TaskParameter="Include" ItemName="_EvaluatedPublishTempFolderNamesToCleanup" />
    </CreateItem>
    <Delete Files="@(_EvaluatedPublishTempFolderNamesToCleanup)" />
</Target>

请注意:由于某些原因,可能是因为我把它自己的项目,我对建筑的看法构建目标被命名为"BuildViews",而不是"MvcBuildViews",所以我不得不相应地修改BeforeTargets属性。我还简化了目标,通过去除PropertyGroup和简化了条件,如下所示:

  <Target Name="CleanupForBuildMvcViews" Condition="'$(MVCBuildViews)'=='true' " BeforeTargets="BuildViews">
    <ItemGroup>
     <_PublishTempFolderNamesToCleanup Include="Database;TransformWebConfig;CSAutoParameterize;InsertAdditionalCS;ProfileTransformWebConfig;Package;AspnetCompileMerge" />
    </ItemGroup>
    <!--Force msbuild to expand all the wildcard characters so to get real file paths-->
    <CreateItem Include="@(_PublishTempFolderNamesToCleanup->'$(BaseIntermediateOutputPath)**\%(identity)\**\*')">
     <Output TaskParameter="Include" ItemName="_EvaluatedPublishTempFolderNamesToCleanup" />
    </CreateItem>
    <Delete Files="@(_EvaluatedPublishTempFolderNamesToCleanup)" />
  </Target>

在我的情况,我看到的是,当我有MvcBuildViews和PrecompileDuringPublish既是真实 - 是什么导致这个问题。

所以我删除了PrecompileDuringPublish和解决方案为我,我还没有遇到,因为这个问题。

“在这里输入的图像描述”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top