2013-04-24 5 views
4

У меня есть следующая встроенная задача, определенная в файле .csproj, который должен запускать BeforeBuild.MSBuild, ссылающийся на DLL в Задаче

<UsingTask TaskName="VersioningTask" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> 
<ParameterGroup> 
    <FileName ParameterType="System.String" Required="true" /> 
    <XmlFileName ParameterType="System.String" Required="true" /> 
</ParameterGroup> 
<Task> 
    <Reference Include="System.Xml.dll" /> 
    <Reference Include="System.Xml.Linq.dll"/> 
    <Using Namespace="System" /> 
    <Using Namespace="System.IO" /> 
    <Using Namespace="System.Linq" /> 
    <Using Namespace="System.Text" /> 
    <Using Namespace="System.Text.RegularExpressions" /> 
    <Using Namespace="System.Xml.Linq" /> 
    <Code Type="Fragment" Language="cs"><![CDATA[ 
     var xDoc = XDocument.Load(XmlFileName); 
     //... 

При создании проекта с VS2012 я получаю следующее сообщение об ошибке:

Could not find reference "System.Xml.dll". If this reference is required by your code, you may get compilation errors.

Could not find reference "System.Xml.Linq.dll". If this reference is required by your code, you may get compilation errors.

Если удалить XML материал и две ссылки, сборка прошла успешно. Я попытался использовать полные пути к DLL (% windir%/assembly) без каких-либо успехов.

Любые идеи, которые здесь не так, высоко ценятся.

ответ

10

У меня была такая же точная проблема при ссылке на System.Xml.Linq. Переключение на скомпилированную задачу решает ваше решение, но для реализации исходного кода в качестве встроенной задачи просто отбросьте расширение файла из ссылок, а затем свою встроенную задачу, чтобы вы ссылались на корневое пространство имен, а не на имя файла.

Изменить это:

<Reference Include="System.Xml.dll" /> 
<Reference Include="System.Xml.Linq.dll"/> 

Для чтения:

<Reference Include="System.Xml" /> 
<Reference Include="System.Xml.Linq"/> 
+3

Спасибо, страница MSDN инлайн задач (http://msdn.microsoft.com/en-us/library/dd722601. aspx) неправильно включает DLL в конце. – makhdumi

-1

Решил его с помощью обычных задач вместо использования встроенных задач.