И я цитирую:
«.NET Framework 4 обратно совместим с приложениями, которые были созданы с .NET Framework версий 1.1, 2.0, 3.0 и 3.5. Другими словами, приложения и компоненты, созданные с предыдущими версиями .NET Framework, будут работать с .NET Framework 4. «
Взято из Совместимость версий в .NET Framework
У вас есть правильная идея с файлом App.config, но вы действительно ограничиваете себя одной строкой. Могу ли я предложить более либеральное использование поддерживаемых строк Runtime?
Например:
Почему supportedRuntime version="v3.5"
закомментирован? Помните, что эта конфигурация определяет, какие версии Common Language Runtime (CLR) совместимы с вашим приложением. Нет версии 3.0 или 3.5 для CLR. См. Версии и зависимости .NET Framework
В Bash необходимо получить то, в чем Вы нуждаетесь как это:
#!/usr/bin/env bash
BASEDIR=$(dirname "$0")
echo "$BASEDIR"
Это должно добиться цели:
echo `pwd`/`dirname $0`
Это могло бы выглядеть ужасным в зависимости от того, как это было вызвано и cwd, но должно получить Вас, куда необходимо пойти (или можно настроить строку, если Вы заботитесь, как это смотрит).
Принятие Вы используете удар
#!/bin/bash
current_dir=$(pwd)
script_dir=$(dirname $0)
echo $current_dir
echo $script_dir
Этот сценарий должен распечатать каталог, что Вы находитесь в, и затем каталог, в котором находится сценарий. Например, при вызове его от /
со сценарием в /home/mez/
, это производит
/
/home/mez
Помните, при присвоении переменных от вывода команды, перенесите команду в $(
и )
- или Вы не получите желаемый вывод.
Исходное сообщение содержит решение (игнорируйте ответы, они не добавляют ничего полезного). Интересная работа проделана упомянутой командой unix readlink
с опцией -f
. Работает, когда сценарий вызывается как по абсолютному, так и по относительному пути.
Для bash, sh, ksh:
#!/bin/bash
# Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=$(dirname "$SCRIPT")
echo $SCRIPTPATH
Для tcsh, csh:
#!/bin/tcsh
# Absolute path to this script, e.g. /home/user/bin/foo.csh
set SCRIPT=`readlink -f "$0"`
# Absolute path this script is in, thus /home/user/bin
set SCRIPTPATH=`dirname "$SCRIPT"`
echo $SCRIPTPATH
Если вы используете bash ....
#!/bin/bash
pushd $(dirname "${0}") > /dev/null
basedir=$(pwd -L)
# Use "pwd -P" for the path without links. man bash for more info.
popd > /dev/null
echo "${basedir}"