Компиляция x86
От: Аноним  
Дата: 09.01.13 11:33
Оценка:
Так как некоторые мои проекты экспортируют данные в dbf, то мне необходимо компилировать эти проекты в режиме x86. Попробовал в Nemerle использовать этот режим в тестовом проекте (VS2010, Win7 64bit):
1. Падает дизайнер форм, если на нем был UserControl. Правда UserControl был определен в этой же сборке. Возможно его надо вынести из этой сборки.
2. Не компилирует проект, который в режиме Any CPU успешно собирался.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : The OutputPath property is not set for project 'TestWindowsFormsApplication.nproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='x86'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.
Done building project "TestWindowsFormsApplication.nproj" -- FAILED.
Re: Компиляция x86
От: _NN_ www.nemerleweb.com
Дата: 09.01.13 15:07
Оценка: 49 (1)
Здравствуйте, Аноним, Вы писали:

А>Так как некоторые мои проекты экспортируют данные в dbf, то мне необходимо компилировать эти проекты в режиме x86. Попробовал в Nemerle использовать этот режим в тестовом проекте (VS2010, Win7 64bit):

А>1. Падает дизайнер форм, если на нем был UserControl. Правда UserControl был определен в этой же сборке. Возможно его надо вынести из этой сборки.
А>2. Не компилирует проект, который в режиме Any CPU успешно собирался.
А>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : The OutputPath property is not set for project 'TestWindowsFormsApplication.nproj'.
Очевидно в разделе x86 нет OutputPath

Откройте в блокноте 'TestWindowsFormsApplication.nproj и поищите раздел
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
В нем должен быть <OutputPath>bin\Release\</OutputPath>.
Пути могут быть конечно другими.
Аналогично для Debug.

Примерно должно быть так:
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
  </PropertyGroup>
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Компиляция x86
От: x1 http://www.agpage.ru
Дата: 10.01.13 09:14
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Примерно должно быть так:

_NN>
_NN>  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
_NN>    <PlatformTarget>x86</PlatformTarget>
_NN>    <DebugSymbols>true</DebugSymbols>
_NN>    <Optimize>false</Optimize>
_NN>    <OutputPath>bin\Debug\</OutputPath>
_NN>    <DefineConstants>DEBUG;TRACE</DefineConstants>
_NN>    <ErrorReport>prompt</ErrorReport>
_NN>    <WarningLevel>4</WarningLevel>
_NN>  </PropertyGroup>
_NN>  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
_NN>    <PlatformTarget>x86</PlatformTarget>
_NN>    <DebugSymbols>false</DebugSymbols>
_NN>    <Optimize>true</Optimize>
_NN>    <OutputPath>bin\Release\</OutputPath>
_NN>    <DefineConstants>TRACE</DefineConstants>
_NN>    <ErrorReport>prompt</ErrorReport>
_NN>    <WarningLevel>4</WarningLevel>
_NN>    <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
_NN>  </PropertyGroup>
_NN>


И это должно быть написано, например, сразу после аналогичных PropertyGroup для AnyCPU.
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>

Но не в самом конце файла, куда у меня, например, добавлялось автоматически при работе в Studio2010.
Насколько я понял, это небольшой баг в интеграции + особенность файла проекта в Studio, что от места, где находится запись что-то зависит.
Re[3]: Компиляция x86
От: _NN_ www.nemerleweb.com
Дата: 10.01.13 10:41
Оценка:
Здравствуйте, x1, Вы писали:

x1>И это должно быть написано, например, сразу после аналогичных PropertyGroup для AnyCPU.

x1>
x1><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
x1></PropertyGroup>
x1>

x1>Но не в самом конце файла, куда у меня, например, добавлялось автоматически при работе в Studio2010.
x1>Насколько я понял, это небольшой баг в интеграции + особенность файла проекта в Studio, что от места, где находится запись что-то зависит.

Интеграция тут не причем.
По всей видимости MSBuild таск просто не смотрит на то, что после него.
Ну или как это там работает
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Компиляция x86
От: _NN_ www.nemerleweb.com
Дата: 10.01.13 10:49
Оценка: +1
Здравствуйте, x1, Вы писали:

Кстати в C# тоже не работает если в самый конец файла поставить.
Так что бага никакого нет.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Компиляция x86
От: x1 http://www.agpage.ru
Дата: 11.01.13 06:39
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Кстати в C# тоже не работает если в самый конец файла поставить.

_NN>Так что бага никакого нет.

Да. Это так. Но в C# при указании платформы x86 добавление соответствующих строк в файл проекта всегда происходило в нужное место. В Nemerle при указании платформы x86 у меня соответствующие строки добавились на одном из проектов в конец файла. На пустом проекте проблему воспроизвести пока не удалось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.