我试图在ASP.NET文件系统中包含一个未包含在解决方案中的文件(它是从构建后的脚本自动生成的)。根据{{3}},我应该能够使用.pubxml
元素在<_CustomFiles>
定义中添加对该文件的引用。这是.pubxml
文件的样子:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>(publish URL here)</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="scripts\app.min.js" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
我添加了第二个<PropertyGroup>
和<Target>
元素。
但是,Visual Studio无法识别<_CustomFiles>
元素,并且该文件未包含在发布中。注意元素下面的绿色波浪线:
当我将鼠标悬停在其上时,会显示以下错误消息:
The element 'ItemGroup' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003' has invalid child element '_CustomFiles' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003'
为什么Visual Studio无法识别此元素?为了在文件系统发布中包含此文件,我需要更改什么?
答案 0 :(得分:3)
想出来。我误解了<_CustomFiles>
元素的目的。这似乎是一个自定义元素(即不是XML模式的一部分,因此VS警告)用于将信息传递给它下面的<FilesForPackaginFromProject>
元素。
事实证明这个方法 为我工作,我只是错误地使用相对路径。